flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
FLATTEN1(++2(x, y)) -> FLATTEN1(x)
REV1(++2(x, y)) -> REV1(x)
REV1(++2(x, y)) -> REV1(y)
FLATTEN1(++2(x, y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(x)
++12(++2(x, y), z) -> ++12(x, ++2(y, z))
FLATTEN1(++2(x, y)) -> ++12(flatten1(x), flatten1(y))
REV1(++2(x, y)) -> ++12(rev1(y), rev1(x))
FLATTEN1(++2(unit1(x), y)) -> ++12(flatten1(x), flatten1(y))
FLATTEN1(unit1(x)) -> FLATTEN1(x)
++12(++2(x, y), z) -> ++12(y, z)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
FLATTEN1(++2(x, y)) -> FLATTEN1(x)
REV1(++2(x, y)) -> REV1(x)
REV1(++2(x, y)) -> REV1(y)
FLATTEN1(++2(x, y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(x)
++12(++2(x, y), z) -> ++12(x, ++2(y, z))
FLATTEN1(++2(x, y)) -> ++12(flatten1(x), flatten1(y))
REV1(++2(x, y)) -> ++12(rev1(y), rev1(x))
FLATTEN1(++2(unit1(x), y)) -> ++12(flatten1(x), flatten1(y))
FLATTEN1(unit1(x)) -> FLATTEN1(x)
++12(++2(x, y), z) -> ++12(y, z)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
++12(++2(x, y), z) -> ++12(x, ++2(y, z))
++12(++2(x, y), z) -> ++12(y, z)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
++12(++2(x, y), z) -> ++12(x, ++2(y, z))
++12(++2(x, y), z) -> ++12(y, z)
POL( nil ) = 1
POL( ++12(x1, x2) ) = max{0, 3x1 - 3}
POL( ++2(x1, x2) ) = 2x1 + 2x2 + 3
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
REV1(++2(x, y)) -> REV1(y)
REV1(++2(x, y)) -> REV1(x)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV1(++2(x, y)) -> REV1(y)
REV1(++2(x, y)) -> REV1(x)
POL( ++2(x1, x2) ) = 2x1 + 2x2 + 1
POL( REV1(x1) ) = x1 + 3
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
FLATTEN1(++2(x, y)) -> FLATTEN1(x)
FLATTEN1(++2(x, y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(x)
FLATTEN1(unit1(x)) -> FLATTEN1(x)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FLATTEN1(++2(x, y)) -> FLATTEN1(x)
FLATTEN1(++2(x, y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(x)
FLATTEN1(unit1(x)) -> FLATTEN1(x)
POL( FLATTEN1(x1) ) = 2x1 + 3
POL( ++2(x1, x2) ) = 2x1 + 2x2 + 1
POL( unit1(x1) ) = 3x1 + 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))